home *** CD-ROM | disk | FTP | other *** search
- Xref: bloom-picayune.mit.edu comp.lang.objective-c:1012 news.answers:4555
- Path: bloom-picayune.mit.edu!enterpoop.mit.edu!spool.mu.edu!olivea!sun-barr!cs.utexas.edu!bcm!aio!fdr!shirley
- From: shirley@fdr.uucp (Bill Shirley [CSC])
- Newsgroups: comp.lang.objective-c,news.answers
- Subject: Objective-C Classes/Libraries Available - FAQ
- Summary: A listing of Objective-C Class Libraries freely available,
- bundled with other packages, or purchasable from 3rd parties.
- Message-ID: <objc-classes_724237201@fdr.jsc.nasa.edu>
- Date: 13 Dec 92 09:00:49 GMT
- Expires: 26 Jan 1993 09:00:01 GMT
- References: <objc_724237201@fdr.jsc.nasa.edu>
- Sender: news@aio.jsc.nasa.gov (USENET News System)
- Followup-To: comp.lang.objective-c
- Organization: nasa-jsc
- Lines: 519
- Approved: news-answers-request@MIT.Edu
- Supersedes: <objc-classes_721077644@fdr.jsc.nasa.edu>
-
- Archive-name: Objective-C/classes
- Last-modified: 1992/08/18
- Version: 1.0
-
-
- Objective C
- A matter of Class
-
- A (very incomplete) listing of available Objective-C classes
-
-
- Index:
- Stepstone Classes/Libraries
- GNU Distributed Classes
- Public Domain Classes
- NeXT Distributed Classes
- NeXT 3rd Party Classes
-
-
- *Class* == Not a part of that kit
-
-
- ===========================
- Stepstone Classes/Libraries
- ===========================
-
- Bundled with the compiler is ICpak 101 - Foundation Class Library
- (20 classes, more than 300 methods)
- Object object - the runtime 'root' object'
- Array array - an abstract class
- IdArray id array - array of objects
- IntArray integer array
- AsciiFiler ASCII filer - an automatic I/O object
- Cltn collection - an abstract class
- OrdCltn ordered collection
- Stack LIFO collection
- Set Set collection - no duplicate members
- Dictionary associations - a la symbol tables
- BalNode balanced node - support for binary trees
- SortCltn sorted collection
- String string - null terminated ASCII sequence
- Point point - 2D coordinate
- Rectangle rectangle - 2D region
- Assoc association - key/value pairs support for dictionaries
- IPSequence in-place sequence - for sequencing through cltn
- Sequence sequence - same as above but uses copy of data
- ObjGraph object graph - graph of objects reachable
- Unknown unknown - support for AsciiFiler
-
- available separately for most systems, ICpak 201 - Graphical User Interface
- (58 classes, more than 1100 methods)
-
- *Object*
- IntCltn
- IntOrdCltn
- PtrCltn
- PtrOrdCltn
- TransCltr
- OpaqCltr
- *Array*
- ColorArray
- ColorMap
- ShortArray
- PtrArray
- RubberLine
- EventQ
- CharString
- Quad
- RectList
- DispObject
- SolidColor
- DispText
- DispMedium
- [****] ....
- Pattern
- Cursor
- EchoBox
- Font
- Menu
- DepMenu
- AdHocMenu
- Timer
- DepObject
- SharObject
-
- available for several platforms, ICpak 301 - GRAPHpak
-
- [****]
-
-
-
- =======================
- GNU distributed classes
- =======================
-
- [****]
-
-
- =====================
- Public Domain classes
- =====================
-
- Random Class (sonata.cc.purdue.edu:/pub/next/oop/classes/Random2.0.tar.Z)
- - implements its own random number generator, supports Gaussian
- variables, die rolling, etc.
-
- Julian Date (sonata.cc.purdue.edu:/pub/next/oop/classes/Julian1.1.tar.Z)
- - implements Julian dates, conversions, etc. (NeXTSTEP)
-
- [****]
-
-
- ========================
- NeXT distributed Classes
- ========================
-
- + == only in NeXTSTEP Release 3 (may follow kit name for all objects in kit)
-
- Root Class
- ==========
- Object the root class
-
-
- Common Classes
- ==============
- Some classes of general utility, that don't belong to any kit.
-
- *Object*
- Storage object that stores a list of items (various types)
- List object that stores a list of other objects
- HashTable key-based storage object
- StreamTable used for writing sets of data to streams
- NXStringTable stores a set of strings accessible by key
-
- Application Kit (AppKit)
- ========================
- The first kit, used for implementing the framework and user interface of
- (nearly) every NeXTSTEP application. Provides an engine that handles
- the event loop, connection to the Window Server, and handles many standard
- services. Includes classes for user controls, font and color management, a
- text editor, a dynamic data link system (release 3), inter-application
- communication, and several standard panels.
-
- *Object*
- Responder abstract class for objects that respond to events
- Application an application's "engine"; handles event loop & more
- Window manages an independent drawing area on the screen
- Panel special subclass of Window
- Menu manages array of command items that can be picked
- PopUpList pop-up list of items that can be picked
- FontPanel std Panel for selecting Fonts
- PrintPanel std printing Panel:choose printer, resolution, etc
- PageLayout std page layout Panel
- SavePanel std save Panel
- OpenPanel std open Panel
- NXColorPanel std color-picker Panel
- NXHelpPanel + std help Panel
- NXDataLinkPanel + std Panel for managing dynamic data links
- View manages a drawing area within a Window
- Control abstract class for UI objects (buttons, etc)
- NXBrowser hierarchical browser of items (like a filesystem)
- Matrix manages a group of Cells (eg, a set of radio buttons)
- Form a Matrix of FormCells (text entry areas with titles)
- Button your basic push-button doodad
- TextField displays text or allows the user to edit it
- Slider slide its knob to change its value
- Scroller used for scrolling long documents
- NXColorWell used for representing a color selection
- Text std object for editing text (ascii or RTF)
- Box used to group other Views in a box
- NXSplitView used for a pair of Views that share screen space
- ScrollView manages relation between a ClipView and Scrollers
- ClipView used for View that's larger than its onscreen area
- Cell rubber-stamp class for drawing in a View
- NXBrowserCell used for the items in an NXBrowser
- SelectionCell performs some of NXBrowserCell's functionality (obs)
- ActionCell used with Controls (or a set with a Matrix)
- FormCell displays a title and a text-entry area in a Form
- ButtonCell used for drawing Buttons
- MenuCell used for drawing Menu items
- TextFieldCell used for drawing text-entry/display areas
- SliderCell used for drawing a slider bar
- Pasteboard used for cut/copy/paste and much, much, more
- NXImage convenient image-drawer; handles much nitty detail
- NXImageRep abstract class used with NXImage for specific images
- NXBitmapImageRep NXImageRep for bitmaps (for example, TIFF)
- NXEPSImageRep NXImageRep for PostScrip images
- NXCustomImageRep NXImageRep for user-defined images
- NXCachedImageRep NXImageRep for already-rendered images
- NXDataLink + represents a dynamic data link in a document
- NXDataLinkManager + manages all the data links in a document
- NXSelection + represents the linked data in a source document
- NXCursor std object for displaying various cursors
- Font object representing a PostScript font
- FontManager manages the Fonts in an application
- NXColorPicker + for creating a custom color picker in the color Panel
- NXColorList + manages a list of named colors (eg, Pantone(R))
- PrintInfo contains information about a print job
- NXSpellChecker + used to access spell-checking services
- NXSpellServer + allows 3rd party to provide a custom spell-checker
- Speaker sends inter-application messages
- Listener receives inter-application messages
- NXJournaler records and plays back events and sounds
-
- Video Class +(was in AppKit for Release 2)
- ===========
- Displays video input to a NeXTdimension board on screen.
-
- *Object*
- NXLiveVideoView displays video input to a NeXTdimension board
-
- Sound Kit
- =========
- The Sound Kit is a set of classes for managing sound in a NeXTSTEP application.
-
- *Object*
- Sound represents a single sound
- *Responder*
- *View*
- SoundView used to display and edit sounds
- SoundMeter used to indicate sound volume as it plays
- NXSoundStream + abstract class; manages a stream of sound data
- NXPlayStream + plays sound data on an NXSoundOut object
- NXRecordStream + records sound data from an NXSoundIn object
- NXSoundDevice + abstract class; represents a device (mic, speaker)
- NXSoundIn + represents sound input devices (microphones)
- NXSoundOut + represents sound output devices (speakers etc)
-
- Music Kit # (no longer maintained by NeXT)
- ==========================================
- A large kit for music synthesis. <<Should be available by ftp from CCRMA>>
- (ccrma-ftp.stanford.edu:pub/???)
-
- *Object*
- Note stores information about a musical event
- Envelope control musical attributes of Notes
- Part ordered set of Notes than can be performed
- Score set of Parts that make up a musical piece
- ScorePerformer plays each Part in a Score
- ScoreRecorder records a Score, Part by Part and Note by Note
- Orchestra manages a DSP to synthesize music
- Conductor controls the timing of a group of objects
- Instrument manages Notes in a performance
- SynthInstrument synthesizes its Notes on the DSP
- PartRecorder copies its notes onto a Part object
- FileWriter writes its notes to a file on disk
- NoteFilter modifies Notes and passes them on to other objects
- Performer abstract class; sends a sequence of notes in time
- FilePerformer performs music data from a file or stream
- ScorefilePerformer performs music data from a scorefile
- PartPerformer performs the Notes in a Part
- NoteReceiver used by Instruments to realize Notes from Performers
- NoteSender used by Performers to realize Notes on Instruments
- TuningSystem represents a musical tuning system
- SynthData represents DSP memory used in music synthesis
- Midi provides and ObjC interfact to the MIDI driver
- WaveTable represents a period of sound as a series of samples
- Samples builds WaveTable of recorded samples
- Partials builds WaveTable from sine wave components
- PatchTemplate used as part of a SynthPatch
- SynthPatch abstract class; represents a sound sythesis module
- Pluck synthesizes the sound of a plucked string
- Wave1 WaveTable synthesis; 1 table
- Wave1v WaveTable synth; 1 table with vibrato
- Wave1i WaveTable synth; 1 table with freq interpolation
- Wave1vi WaveTable synth; 1 table with both
- DBWave1v WaveTable synth; 1 table with vibrato
- DBWave1i WaveTable synth; 1 table with interpolation
- DBWave2vi WaveTable synth; 2 tables with both
- Fm1 Freq modulation synth; simple fm
- Fm1i Freq mod synth; simple fm with freq interpolation
- Fm1v Freq mod synth; simple fm with vibrato
- Fm1vi Freq mod synth; simple fm with both
- Fm2cvi Freq mod synth; Cascade fm
- Fm2cnvi Freq mod synth; Cascade fm with random mod. (noise)
- Fm2pvi Freq mod synth; Parallel fm
- Fm2pnvi Freq mod synth; Parallel fm with noise
- UnitGenerator abstract class; building blocks of DSP synthesis
- Add2UG Various types of UnitGenerators
- AllPass1UG ...
- AsympUG
- ConstantUG
- DelayUG
- DswitchtUG
- DswitchUG
- InterpUG
- Mul1add2UG
- Mul2UG
- OnepoleUG
- OnezeroUG
- OscgafUG
- OscgafiUG
- UscgUG
- Out1aUG
- Out1bUG
- Out2sumUG
- ScaleUG
- Scl1add2UG
- Scl2add2UG
- SnoiseUG
- UnoiseUG
-
- Database Kit (DBKit) +
- ======================
- Manages connections to entity-relationship database servers. The Database kit
- includes these services: communication with client-server databases, modeling
- properties (attributes and relationships) of each database, record management
- and buffering, data flow between record managers and the application user
- interface, and user interface objects for display and editing.
-
- *Object*
- DBDatabase represents a connection to a database server
- DBExpression encapsulates a database expression as an object
- DBQualifier represents cond. records must satisfy to be selected
- DBValue stores a value of an arbitrary type
- DBBinder connects database items to ObjC objects
- DBModule maps database model entities to application objects
- DBRecordStream represents a sequence of fetched database records
- DBRecordList supports random access to a seq. of records
- DBFetchGroup manages DBRecordList data with UI presentation
- DBAssocation associates a property with a destination object
- *Responder*
- *View*
- *Control*
- DBImageView displays an NXImage object in a frame
- *ScrollView*
- DBTableView spreadsheet-like view for modifying tables of data
- DBTableVector represents a field in a DBTableView
- DBFormatter abstract class for formatting data
- DBTextFormatter quickly formats read-only text data
- DBEditableFormatter formats editable text data
- DBImageFormatter formats, scales, and aligns image data
-
- Indexing Kit (IXKit) +
- ======================
- The Indexing Kit is a set of programmatic tools for managing data, especially
- the large amounts of data characteristic of information-intensive applications.
- Much as the Application Kit provides a framework for a graphical interface,
- the Indexing Kit provides a framework for data management.
-
- *Object*
- IXStore relocatable storage allocator/manager
- IXStoreFile disk-based IXStore
- IXStoreBlock "wrapper" for a single block of storage in an IXStore
- IXStoreDirectory allows access to objects in an IXStore by name
- IXBTree associative (key-based) access to data in an IXStore
- IXBTreeCursor a pointer to an item in an IXBTree
- IXPostingCursor cursor that assumes data is sets of postings (below)
- IXRecordManager manages large indexed collections of data
- IXPostingSet manages a set of postings (refs to indexed records)
- *List*
- IXPostingList lazily retrieves objects from postings
- IXFileFinder indexes and finds files with a general query language
- IXFileRecord represents a file in the filesystem
- IXAttributeParser parses text into lists of tokens
- IXAttributeReader breaks text into tokens
- IXLanguageReader abstract class; for tokenizing a specific language
- IXWeightingDomain represents frequency information about a set of text
- IXAttributeQuery processes a query against a conforming object
-
- Mach Kit +
- ==========
- The Mach Kit provides a number of classes for convenient use of Mach mutexes,
- and a number of classes used by the Distributed Objects facility.
-
- *Object*
- NXData wrapper for (void *) data
- NXLock object-oriented mutex lock
- NXConditionLock as above, but waits on a condition
- NXRecursiveLock as above, but same thread can acquire multiple times
- NXSpinLock as above, for use with short critical sections
- NXProtocolChecker restricts messaging access to remote objects
- NXInvalidationNotifier notifies clients when a connection breaks
- NXPort wrapper for a Mach port
- NXNetNameServer provides ObjC interface to NeXT's NetNameServer
-
- Distributed Objects Facility +
- ==============================
- The Distributed Objects facility allows a process to send messages to objects
- in the address space of a different process. For all practical purposes, the
- remote object exists in the sending process. Nearly any message can be sent,
- and many data types, including other objects can be sent and received
- "across the wire."
-
- NXProxy a "root" class that represents a remote object
- *Object*
- NXConnection manages a connection between remote objects
-
- Phone Kit +
- ===========
- The Phone Kit offers an easy way for a developer to connect an application to
- a telephone line, to initiate and receive calls over the line, and to transmit
- and receive data during a call. The phone line must be attached to the user's
- computer, or to a computer on the user's network, through a Hayes ISDN
- Extender(R) or an equivalent device.
-
- *Object*
- NXPhone represents a phone line connected to the computer
- NXPhoneCall represents/manages a connection over a phone line
- NXPhoneChannel represents a channel within a connection
-
- 3D Graphics Kit (3DKit) +
- =========================
- The 3D Kit uses RenderMan to create 3D scenes, much as the Application Kit
- uses the PostScript language to draw 2D graphics. It also provides for
- animation and real-time manipulation of rendered scenes.
-
- *Object*
- *NXImageRep*
- N3DRIBImageRep NXImageRep for RenderMan RIB data
- *Responder*
- *Window*
- *Panel*
- N3DRenderPanel std Panel for selecting hosts to render scene on
- *View*
- N3DCamera renders a single 3D scene
- N3DMovieCamera rederes a sequence of 3D scenes, providing animation
- N3DShape abstract class representing a single 3D "object"
- N3DLight represents a source of light in a scene
- N3DShader handles surface shading/texturing/coloring
- N3DRotator rotates/moves a 3D scene in various ways
- N3DContextManager manages rendering contexts for an application
-
- NetInfo Kit (NIKit) +
- =====================
- These are all standard panels for accessing NetInfo information. Strangely,
- most aren't subclasses of Panel.
-
- *Object*
- NIDomain represents a NetInfo domain
- NIDomainPanel std panel for selecting a NetInfo domain
- NIOpenPanel std panel for opening an item in a domain
- NISavePanel std panel for saving info for a domain
- *Responder*
- *Window*
- *Panel*
- NILoginPanel used, for example, to authorize root access to run an
- app
-
- Interface Builder Applicaton Classes (IB Classes) +
- ===================================================
- These classes allow developers to expand the functionality of the
- Interface Builder application, creating their own palettes of objects
- that can be dragged into an interface, and inspectors to set and view
- the attributes of those objects.
-
- *Object*
- IBInspector defines a custom Interface Builder inspector
- IBPalette connects a loadable palette to Interface Builder
-
- Preferences Application Classes +
- =================================
- These classes allow developers to add their own modules to the Preferences
- application.
-
- *Object*
- Layout represents a Preferences module's layout view
-
- Workspace Manager Application Classes +
- =======================================
- These classes allow developers to add their own file contents inspectors to
- the Workspace Manager application.
-
- *Object*
- WMInspector represents a Workspace contents inspector
-
-
-
- ==============================
- NeXT 3rd Party Class Libraries
- ==============================
-
- [many others - NeXT now publishes an _Object Works_ Catalogue, which
- tells of available classes]
-
- BarCodeKit - an object library for creating bar codes in PostScript and
- TIFF formats. (Hot Software, (617) 252-0088, info@hot.com)
-
- SerialPortKit - generic serial port object, modem object, specific bar
- code readers, magnetic stripe card readers and other serial
- devices. (Hot Software, (617) 252 0088, info@hot.com)
-
- GeoKit - objects that perform map rendering
- (Deltos Fleet Computing, (214) 540-2301)
-
- ChooserPalette - a selection list manager
- (Objective Technologies, (212) 227 6767)
-
- GraphPalette - tools for graphing data in custom apps
- (Objective Technologies, (212) 227 6767)
-
- MathPalette - tools for interfacing with Mathmatica
- (Objective Technologies, (212) 227 6767)
-
- SmartFieldPalette - supplies data input fields that restrict and format
- input, report errors, and notify the user of field content
- (Objective Technologies, (212) 227 6767)
-
- Serial Solutions from BenaTong - Object wrappers for the UNIX ioctls, Modem
- support and MagCard/BarCode reader support.
- (BenaTong (614) 276-7850 benatong@count0.cmhnet.org)
-
-
-
- --------------
- This compendium is doomed to always be incomplete. If you would like
- to add something to it that was left off, you can either contact me
- directly (shirley@fdr.jsc.nasa.gov, Bill Shirley) or post to the group
- comp.lang.objective-c. Contacting me directly will have better chances
- of me making the change.
- Again, thanks to all those who have helped, informed, and given feedback.
- --
- Bill Shirley
- shirley@fdr.jsc.nasa.gov
- --
- ``One lonesome body, Bill Shirley
- one lonesome song. shirley@fdr.jsc.nasa.gov
- No lonesome body,
- no lonesome song.'' - throwing muses
-